/**
 * 仿写JSON内置API的parse方法 (将json格式的字符串转换为js的对象或数组)
 * @param {String} jsonData JSON数据格式
 * @returns Object
 */
function parse(jsonData) {
    // 1.将字符串的花括号和双引号去除
    let str = jsonData.replace(/"|{|}|\s/g, '');
    // 2. 用split(',')将字符串转为数组
    let arr = str.split(',');
    // 3. 创建一个空对象用来存放数据
    let obj = {};
    // 4. 遍历数组,将数组里的值如('a:1')格式的用split(':')分割成['a':1]
    arr.forEach(item => {
        let temp = item.split(':');
        // 5. 数组的第一个值就是对象的键,第二个值就是对象的值
        obj[temp[0]] = isNaN(Number(temp[1])) ? temp[1] : Number(temp[1]);
    })
    return obj;
}

/**
* 仿写JSON内置API的stringify方法 (将js的对象或者数组转换为json格式的字符串)
* @param {Object} obj 标准普通对象
* @returns String
*/
function stringify(obj) {
    // 1. 定义空数组
    let arr = [];
    // 2. 遍历对象,将键和值push进数组中
    for (let key in obj) {
        let val = obj[key];
        if (!['boolean', 'number'].includes(typeof val)) {
            val = `"${obj[key]}"`
        }
        arr.push(`"${key}":${val}`);
    }
    // 3. 拼接成json数据格式
    return `{${arr.join(',')}}`;
}